{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "8fe243ea",
   "metadata": {},
   "source": [
    "# **<font size=4 color=#BB3D00 face=微软雅黑>Dirichlet函数</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de69c20e",
   "metadata": {},
   "source": [
    "diric 函数计算输入向量或矩阵 x 的 Dirichlet 函数，有时称为周期性正弦函数或混叠正弦函数。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1faa9907",
   "metadata": {},
   "source": [
    "## <font size=3  face=微软雅黑>**※Matlab案例**</font> "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "131d8c99",
   "metadata": {},
   "source": [
    "网址：https://ww2.mathworks.cn/help/signal/gs/the-dirichlet-function.html     \n",
    "描述：本案例由1个示例构成。\n",
    "### - <font color=DarkOrChid size=3>示例1：绘制Dirichlet函数</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4515a699",
   "metadata": {},
   "source": [
    "## <font size=3 face=微软雅黑>**※Python案例**</font> "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3a28ed4a",
   "metadata": {},
   "source": [
    "针对以上案例，采用Python语言实现。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "320bff9b",
   "metadata": {},
   "source": [
    "### - <font color=DarkOrChid size=3>示例1：绘制Dirichlet函数</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0f55d88f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Matplotlib is building the font cache; this may take a moment.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'x /pi')"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "# 定义diric函数\n",
    "def diric(x,n):\n",
    "    def function(x, n):\n",
    "        if abs(x)%(2*np.pi)==0:\n",
    "            k=abs(x)/(2*np.pi)\n",
    "            return (-1)**(k*(n-1))\n",
    "        else:\n",
    "            return np.sin(n*x/2)/(n*np.sin(x/2))\n",
    "    y=np.array([function(t, n) for t in x])   \n",
    "    return y\n",
    "\n",
    "x= np.linspace(0,4*np.pi,300)\n",
    "plt.subplot(2,1,1)\n",
    "plt.plot(x/np.pi,diric(x, 7))\n",
    "plt.title('N = 7')\n",
    "plt.subplot(2,1,2)\n",
    "plt.plot(x/np.pi,diric(x, 8))\n",
    "plt.title('N = 8')\n",
    "plt.xlabel('x /pi')\n",
    "    "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
